/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import control.MStockMidlet;
import javax.microedition.lcdui.Display;
import listener.Command;
import listener.ICommandListener;
import model.ErrorMessage;
import ui.Detail;
import ui.TextItem;

/**
 *
 * @author tho.hoang
 */
public class MessageForm extends AForm implements ICommandListener {

    public static final int NONE = 0;
    public static final int SERVICE_UNAVAILABLE = 1;
    public static final int CONNECTION_DENIED = 2;
    public static final int ERROR_GPRS = 3;
    private Detail detail;
    private String message = "";
    private int type;
    private boolean destroy;

    public MessageForm() {
    }

    public MessageForm(MStockMidlet control, Display display, int type, String message, boolean destroy) {
        super(control, display);
        this.message = message;
        this.destroy = destroy;
        this.type = type;
    }

    protected void initData() {
        lang = new String[]{"Thông báo",
                    "Trở về",
                    "Thoát",
                    "Không thể sử dụng ứng dụng, vui lòng liên hệ nhà cung cấp!\nChọn [Thoát] để thoát khỏi ứng dụng.",
                    "Yêu cầu kết nối bị từ chối, không thể sử dụng tiếp ứng dụng!\nChọn [Thoát] để thoát khỏi ứng dụng.",
                    "Lỗi kết nối GPRS, không thể sử dụng tiếp ứng dụng!\nChọn [Thoát] để thoát khỏi ứng dụng."};

        this.recycle = control.getRecycle();
        if (type == NONE) {
            this.icon = control.getIcons()[6];
        }
    }

    protected void initGui() {
        if (destroy) {
            back = new Command(lang[2], Command.EXIT);

        } else {
            back = new Command(lang[1], Command.EXIT);
        }

        if (type == SERVICE_UNAVAILABLE) {
            this.message = lang[3];

        } else if (type == CONNECTION_DENIED) {
            this.message = lang[4];

        } else if (type == ERROR_GPRS) {
            this.message = lang[5];
        }

        detail = new Detail(display, control, lang[0], background, icon);
        detail.setCancelCommand(back);
        detail.setCommandListener(this);

        detail.addItem(new TextItem("", "", message));

        detail.show();
    }

    protected void loadData() {
    }

    protected void showData() {
    }

    protected void showError(ErrorMessage error) {
    }

    public void commandAction(Command command) {
        if (command == back) {
            if (destroy) {
                control.destroyApp(true);
                control.notifyDestroyed();

            } else {
                control.back(0);
            }
        }
    }
}
